/**
 * 页面跳转的相关方法
 */

// import * as auth from "./auth";
import auth from "/auth";
// const getTenantId = require("../utils/auth.js")

const tranferUrl = url => {
  //地址和参数分离
  let para = "";
  if (url.indexOf("?")) {
    let arrPara = url.split("?");
    url = arrPara[0];
    para = arrPara[1];
  }
  let result = "";
  result = "/pages" + url;
  console.log(result)
  //拼接参数
  if (para) result += "?" + para;
  return result;
};

/**
 * @description 保留当前页面，跳转到应用内的某个页面，使用wx.navigateBack可以返回到原页面。
 * @param {string} url 跳转的地址
 */
const navigateTo = url => {
  // 判断打开页面是否需要登录
  // if (auth.checkLogin(url)) {
    url = tranferUrl(url);
    wx.navigateTo({
      url: url,
      fail: function(res) {
        console.log(res)
        console.log("navigateTo 失败");
      }
    });
  // }
};

/**
 * @description 关闭当前页面，跳转到应用内的某个页面。
 * @param {sting} url 跳转的地址
 * @param {string} para 页面参数
 */

const redirectTo = url => {
  // 判断打开页面是否需要登录
  if (auth.checkLogin(url)) {
    url = tranferUrl(url);
    wx.redirectTo({
      url: url,
      fail: function(e) { 
        console.log(e)
        console.log("navigateTo 失败");
      }
    });
  }
};

/**
 * @description 关闭所有页面，打开到应用内的某个页面。
 * @param {sting} url 跳转的地址
 * @param {string} para 页面参数
 */
const reLaunch = url => {
  // 判断打开页面是否需要登录
  if (auth.checkLogin(url)) {
    url = tranferUrl(url);
    wx.reLaunch({
      url: url,
      fail: function() {
        console.log("reLaunch 失败");
      }
    });
  }
};

/**
 * @description 跳转到 tabBar 页面，并关闭其他所有非 tabBar 页面。
 * @param {sting} url 跳转的地址
 */
const switchTab = url => {
  if (auth.checkLogin(url)) {
    url = tranferUrl(url);
    wx.switchTab({
      url: url,
      fail: function() {
        console.log("switchTab 失败");
      }
    });
  }
};

/**
 * @description 关闭当前页面，返回上一页面或多级页面。可通过 getCurrentPages() 获取当前的页面栈，决定需要返回几层。
 * @param {number} delta 返回的页面数
 */
const navigateBack = (delta = 1) => {
  let pages = getCurrentPages();
  if (pages && pages.length > 1) {
    wx.navigateBack({
      delta: delta
    });
  } else {
    redirectTo("/index/index");
  }
};

export default { 
  navigateTo, 
  redirectTo, 
  reLaunch, 
  switchTab, 
  navigateBack 
};
